package cn.com.chengmandian.core.redis.constants;


/**
 * 电单车自定义参数定义
 */
public enum BikeParamDefine {
    // 全局配置
    userPhoneAuthLogin(DataType.BOOLEAN), // 用户端-手机验证码登陆开关
    userIdcardThirdAuth(DataType.BOOLEAN), // 用户端-身份证第三方实名认证
    userAgentRideRealNameAuthEnabled(DataType.BOOLEAN), // 用户端-身份认证-实名信息认证
    userAgentRegisterAuthEnabled(DataType.BOOLEAN), // 用户端-身份认证-注册前实名
    userAgentMiniLoginFaceAuthEnabled(DataType.BOOLEAN), // 用户端-身份认证-是否开启人脸认证
    userAgentMinLoginFaceLifeAuthEnabled(DataType.BOOLEAN), // 用户端-身份认证-是否开启活体人脸认证
    userServicePhone(DataType.STRING), // 用户端-客服电话
    userServiceOnlineLink(DataType.STRING), // 用户端-在线客服链接
    userThemeStyle(DataType.STRING), // 用户端-主题样式
    miniProgramOrderNotifyTemplateId(DataType.STRING), // 小程序-订单通知模版ID
    userRideAllowRecharge(DataType.BOOLEAN), // 用户端-钱包充值开关
    rideOrderWxPayScore(DataType.BOOLEAN), // 用户端-骑行订单微信支付分
    serviceId(DataType.STRING), // 用户端-骑行订单微信支付分服务id
    wxOrderIsConfirm(DataType.BOOLEAN), // 用户端-微信支付分订单-是否需要用户确认
    rideOrderIsUseWxPayScore(DataType.BOOLEAN), // 用户端-骑行订单必须使用微信支付分
    rideOrderPreSaleAmount(DataType.INTEGER), // 用户端-骑行订单预授权金额
    wxSeparateAccount(DataType.BOOLEAN), // 微信分账
    userRideFeedbackBillInformTemplateId(DataType.STRING), // 骑行反馈工单通知模板ID
    miniHalfSizeAdEnabled(DataType.BOOLEAN), // 品牌配置-第三方设置-半屏广告开关
    miniHalfSizeAdParams(DataType.STRING), // 品牌配置-第三方设置-半屏广告配置参数
    miniHalfSizeAdAppId(DataType.STRING), // 品牌配置-第三方设置-半屏广告APPID
    miniHalfSizeAdLink(DataType.STRING), // 品牌配置-第三方设置-半屏广告链接
    customerServiceDes(DataType.STRING), // 品牌-客户服务说明
    userIdentityAuthNotifyTemplateId(DataType.STRING), // 品牌配置-微信小程序-身份认证结果通知模板ID

    // 区域配置
    opsBillChargeInSoc(DataType.INTEGER), // 运维配置-工单-换电-换入电池电量需高于此值
    opsBillChargeOutSoc(DataType.INTEGER), // 运维配置-工单-换电-换出电池电量需低于此值
    opsBillChargeSoc(DataType.INTEGER), // 运维配置-工单-换电-换电阀值
    opsBillChargeBindBattery(DataType.INTEGER), // 运维配置-工单-换电-是否绑定电池
    opsBillChargeAuto(DataType.BOOLEAN), // 运维配置-工单-换电-自动生成换电工单
    opsChargeOpenAisleDistance(DataType.INTEGER), // 运维配置-工单-换电-开启电池仓距离限制[x]米
    opsBillDispatchAuto(DataType.BOOLEAN), // 运维配置-工单-调度-自动生成调度工单
    opsBillDispatchAreaOut(DataType.BOOLEAN), // 运维配置-工单-调度-自动调度区外车辆
    opsBillDispatchIdle(DataType.BOOLEAN), // 运维配置-工单-调度-自动调度闲置48小时车辆（废弃）
    opsBillDispatchHour(DataType.INTEGER), // 运维配置-工单-调度-自动调度闲置X小时车辆
    opsBillDispatchAgain(DataType.INTEGER), // 运维配置-工单-调度-调度后闲置X小时再次调度
    opsBillDispatchBikeControl(DataType.INTEGER),//运维配置-工单-调度-调度车辆控制
    opsBillDispatchSameStation(DataType.BOOLEAN), // 运维配置-工单-调度-是否允许相同站点调度
    opsBillDispatchHourHaveWork(DataType.INTEGER), // 运维配置-工单-调度-调度后x小时内判定有效
    opsBillPatrolAuto(DataType.BOOLEAN), // 运维配置-工单-巡检-自动生成巡检工单
    opsPatrolTagUploadImage(DataType.BOOLEAN), // 运维配置-工单-巡检-车辆巡检是否必须上传图片
    opsBillRepairAuto(DataType.BOOLEAN), // 运维配置-工单-维修-自动生成维修工单
    opsWorkMoveDistance(DataType.INTEGER),// 运维配置-挪车-挪车距离大于x米
    opsWorkMoveHours(DataType.INTEGER),// 运维配置-挪车-x小时内，产生有效订单
    opsWorkMoveUploadImage(DataType.BOOLEAN), // 运维配置-挪车-照片是否必传
    opsLessChargingForbidOpenAisle(DataType.BOOLEAN), //运维配置-换电-高于换电阈值禁止打开电池仓
    opsUseBikeStopMinuteLock(DataType.INTEGER), // 运维配置-日常-运维占用车辆静止超过X分钟自动锁车"
    opsBikeMonitoringImageSort(DataType.STRING), // 运维配置-日常-车辆监控图标
    opsExceptionBikeTotalScope(DataType.STRING), // 运维配置-日常-运维异常车辆统计范围
    opsDetainBikeAutoStop(DataType.BOOLEAN), // 运维配置-日常-扣押车自动暂停运营
    userRideShareEnable(DataType.BOOLEAN),// 用户端-共享出行
    userRideRentEnable(DataType.BOOLEAN),// 用户端-分时租赁
    userRideEnable(DataType.BOOLEAN), // 用户端-车辆-可骑行开关
    userRideStopNote(DataType.STRING), // 用户端-车辆-停运说明
    userBikeSocRemind(DataType.INTEGER), // 用户端-车辆-低电量提醒
    userBikeRideSoc(DataType.INTEGER), // 用户端-车辆-骑行最低电量
    userDispatchAllowDiscount(DataType.BOOLEAN),// 用户端-站外区外停车是否能够享受骑行优惠
    userAutoCloseOrder(DataType.BOOLEAN), // 用户端-自动结束订单
    userStaticStopOrder(DataType.INTEGER), // 用户端-车辆静止x分钟后自动临时停车
    userStaticCloseOrder(DataType.INTEGER), // 用户端-车辆静止x分钟后自动结束订单
    userNeedWearHelmet(DataType.BOOLEAN), // 用户端-骑行需要佩戴头盔
    userNeedWareHelmetHintText(DataType.STRING), // 用户端-佩戴头盔文案提醒
    userOpenLockOpenHelmet(DataType.BOOLEAN), // 用户端-开锁后自动打开头盔锁
    userOpenLockCheckHelmetResponse(DataType.BOOLEAN),// 用户端-开锁后检查感应头盔
    userCloseLockCheckHelmetLockStatus(DataType.BOOLEAN),// 用户端-停车时是否要求头盔锁已加锁
    userCloseLockCheckHelmetReignStatus(DataType.BOOLEAN),// 用户端-停车时是否要求头盔锁已加锁
    userBikeHelmetLockStyle(DataType.INTEGER), // 用户端-头盔锁款式 1-通用 2-插销式
    userAreaServicePhone(DataType.STRING), // 用户端-运营区客服电话
    userAreaServiceOnlineLink(DataType.STRING), // 用户端-运营区在线客服链接
    userOrderAntReport(DataType.BOOLEAN), // 用户端-订单数据上报蚂蚁链
    userOpenLockDistance(DataType.INTEGER), // 用户端-用户开锁距离限制
    userNearBikeLocationType(DataType.INTEGER), // 用户端-附近车辆定位方式 1-地图中心点附近 2-用户定位附近
    userSeeBikeNearDistance(DataType.INTEGER), // 用户端-附近车辆范围米 默认1000 0.不返回车辆数
    userCameraAIStopBike(DataType.BOOLEAN), // 用户端-摄像头AI停车开关
    userCameraStopAngle(DataType.INTEGER), // 用户端-摄像头AI还车角度
    userCameraStopDistance(DataType.INTEGER), // 用户端-摄像头AI还车距离
    userCameraStopColor(DataType.INTEGER), // 用户端-摄像头AI请求颜色标志
    userSpikeStopBike(DataType.BOOLEAN), // 用户端-是否开启道钉停车
    userSpikeSignalStrength(DataType.INTEGER), // 用户端-道钉停车信号强度
    userRideBuyMemberCard(DataType.BOOLEAN), // 用户端-是否强制购买会员卡
    userMiniLoginFaceAuthEnabled(DataType.BOOLEAN),// 用户端-是否开启人脸认证
    userMinLoginFaceLifeAuthEnabled(DataType.BOOLEAN), // 用户端-身份认证-是否开启活体人脸认证
    userRideFaceAuthEnabled(DataType.BOOLEAN),// 用户端-是否开启骑行人脸认证
    userRideFaceAuthHaveTime(DataType.INTEGER), // 用户端-人脸识别有效期
    userRideFaceAuthTimeParagraph(DataType.STRING), // 用户端-人脸识别时间段
    userStopBikeRfidEnabled(DataType.BOOLEAN), // 用户端-RFID停车
    userRideRealNameAuthEnabled(DataType.BOOLEAN), // 用户端-实名信息认证
    userRideReturnBikeProcess(DataType.INTEGER), // 用户端-用户还车流程 1-先还车后支付 2-先支付后还车 默认1
    userRideStopBikeMaxTimesEnabled(DataType.BOOLEAN), // 用户端-用户骑行-临时停车次数限制开关
    userRideStopBikeMaxTimes(DataType.INTEGER), // 用户端-用户骑行-临时停车次数限制
    customerAreaServiceDes(DataType.STRING), // 用户端-用户服务-客户服务说明
    userRideAuthNameType(DataType.INTEGER), // 用户端-骑行实名认证 1-按品牌配置、2-要求实名、3-不要求实名，默认1
    userRideAIPhotosStopBike(DataType.BOOLEAN), // 用户端-规范停车-是否开启AI拍照停车
    userAIPhotosStopBikeScheme(DataType.INTEGER), // 用户端-规范停车-AI拍照停车方案 1.华惠
    userAIPhotosStopApiParams(DataType.STRING); // 用户端-规范停车-AI拍照停车方案参数 key=xxx&param2=xxx 格式

    private DataType dataType; // 数据类型

    public DataType getDataType() {
        return dataType;
    }

    public static BikeParamDefine getByName(String name) {
        for(BikeParamDefine define : BikeParamDefine.values()) {
            if (define.name().equals(name)) {
                return define;
            }
        }
        return null;
    }

    BikeParamDefine(DataType dataType) {
        this.dataType = dataType;
    }
}
